package com.baichang.taoshunda.dao;

import com.baichang.framework.dao.BaseDao;
import com.baichang.taoshunda.entity.ShopCar;

import java.util.List;
import java.util.Map;

/**
 * Created by ${wushenglu} on 17/08/23.
 */
public interface ShopCarDao extends BaseDao<ShopCar> {
    /**
     * 删除所有购物车
     *
     * @param userId 用户编号
     * @param bussId
     * @return
     */
    boolean deleteShopCarById(Integer userId, Integer bussId);

    /**
     * 删除已购买的购物车
     *
     * @param userId 用户编号
     * @param bussId
     * @return
     */
    boolean deleteShopCarByBussId(Integer userId, Integer bussId);

    /**
     * 根据用户编号与商品编号获取用户的购物车信息
     *
     * @param userId  用户编号
     * @param goodsId 商品编号
     * @return
     */
    List<ShopCar> findCarByGoodsAndUserId(Integer userId, Integer goodsId);

    /**
     * 修改购物车商品数量
     *
     * @param id     购物车编号
     * @param number 添加数量
     * @return
     */
    int updateCarNumber(Integer id, Integer number);

    /**
     * 查询用户在商家的购物车
     *
     * @param userId 用户编号
     * @param bussId 商家编号
     * @return
     */
    List<Map<String, Object>> findShopCar(Integer userId, Integer bussId);

    /**
     * @param carId
     * @param userId
     * @param bussId
     * @param goodsId
     * @param number
     * @param goodsSpec
     * @return
     */
    int updateShopCar(Integer carId, Integer userId, Integer bussId, Integer goodsId, Integer number, String goodsSpec);

    /**
     * 清空购物车
     *
     * @param userId
     * @return
     */
    boolean removeAllCar(Integer userId);

    /**
     *
     * @param userId
     * @param bussId
     * @return
     */
    Map<String,Object> getAllNumberAndAllMoney(Integer userId, Integer bussId);

    /**
     *
     * @return
     * @param goodsId
     * @param userId
     */
    int getCountByUserIdAndGoodsId(Integer goodsId, int userId);
}
